package attendance;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Timestamp;
import java.util.Date;

public class Util {
    /**
     * 根据传入字符串格式的时间，返回日期格式
     * 
     * @param time
     * @return
     */
    public static Timestamp string2Timestamp(String time) {
        if (time == null)
            return null;

        if (!time.contains(":")) {
            time = time.trim().concat(" 00:00:00");
        }

        return Timestamp.valueOf(time);
    }

    /**
     * 根据传入的字符串格式的数字，返回数字格式
     * 
     * @param number
     * @return
     */
    public static BigDecimal string2BigDecimal(String number) {
        if (number == null)
            return null;

        return new BigDecimal(number);
    }

    /**
     * 根据传入的字符串格式的数字，返回数字格式
     * 
     * @param number
     * @return
     */
    public static BigInteger string2BigInteger(String integer) {
        if (integer == null)
            return null;

        return new BigInteger(integer);
    }

    /**
     * 返回对象的日期格式
     * 
     * @param obj
     * @return
     */
    public static Date getTimestampValue(Object obj) {
        if (obj == null)
            return new Date(0);

        return string2Timestamp(obj.toString());
    }

    /**
     * 用于返回查询的对象的String形式 如果为空则返回空字符串""
     * 
     * @param obj
     * @return
     */
    public static String getStringValue(Object obj) {
        return getStringValue(obj, "");
    }

    /**
     * 用于返回查询的对象的String形式 如果为空则返默认值
     * 
     * @param obj
     * @param defaultValue
     *            默认值
     * @return
     */
    public static String getStringValue(Object obj, String defaultValue) {
        if (obj != null) {
            return obj.toString();
        } else {
            return defaultValue;
        }
    }

    public static double getDoubleValue(Object obj) {
        double result = 0;
        try {
            if (obj != null) {
                result = Double.parseDouble(obj.toString());
            }
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        return result;
    }

    public static int getIntValue(Object obj) {
        int result = 0;
        try {
            if (obj != null) {
                result = (int) Double.parseDouble(obj.toString());
            }
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 通过传入分钟数，返回毫秒数
     * 
     * @param minutes
     * @return
     */
    public static Long getTimeMinutesMillis(int minutes) {
        return new Long(minutes * 1000 * 60l);
    }
}